home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 March / PCWorld_2007-03_cd.bin / domacnost a kancelar / scribus / scribus-1.3.3.7-win32-install.exe / lib / test / decimaltestdata / rounding.decTest < prev    next >
Text File  |  2004-08-23  |  54KB  |  1,080 lines

  1. ------------------------------------------------------------------------
  2. -- rounding.decTest -- decimal rounding modes testcases               --
  3. -- Copyright (c) IBM Corporation, 1981, 2003.  All rights reserved.   --
  4. ------------------------------------------------------------------------
  5. -- Please see the document "General Decimal Arithmetic Testcases"     --
  6. -- at http://www2.hursley.ibm.com/decimal for the description of      --
  7. -- these testcases.                                                   --
  8. --                                                                    --
  9. -- These testcases are experimental ('beta' versions), and they       --
  10. -- may contain errors.  They are offered on an as-is basis.  In       --
  11. -- particular, achieving the same results as the tests here is not    --
  12. -- a guarantee that an implementation complies with any Standard      --
  13. -- or specification.  The tests are not exhaustive.                   --
  14. --                                                                    --
  15. -- Please send comments, suggestions, and corrections to the author:  --
  16. --   Mike Cowlishaw, IBM Fellow                                       --
  17. --   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
  18. --   mfc@uk.ibm.com                                                   --
  19. ------------------------------------------------------------------------
  20. version: 2.39
  21.  
  22. -- These tests require that implementations take account of residues in
  23. -- order to get correct results for some rounding modes.  Rather than
  24. -- single rounding tests we therefore need tests for most operators.
  25. -- [We do assume add/minus/plus/subtract are common paths, however, as
  26. -- is rounding of negatives (if the latter works for addition, assume it
  27. -- works for the others, too).]
  28. --
  29. -- Underflow Subnormal and overflow behaviours are tested under the individual
  30. -- operators.
  31.  
  32. extended:    1
  33. precision:   5           -- for easier visual inspection
  34. maxExponent: 999
  35. minexponent: -999
  36.  
  37. -- Addition operators -------------------------------------------------
  38. rounding: down
  39.  
  40. radx100  add 12345 -0.1       -> 12344 Inexact Rounded
  41. radx101  add 12345 -0.01      -> 12344 Inexact Rounded
  42. radx102  add 12345 -0.001     -> 12344 Inexact Rounded
  43. radx103  add 12345 -0.00001   -> 12344 Inexact Rounded
  44. radx104  add 12345 -0.000001  -> 12344 Inexact Rounded
  45. radx105  add 12345 -0.0000001 -> 12344 Inexact Rounded
  46. radx106  add 12345  0         -> 12345
  47. radx107  add 12345  0.0000001 -> 12345 Inexact Rounded
  48. radx108  add 12345  0.000001  -> 12345 Inexact Rounded
  49. radx109  add 12345  0.00001   -> 12345 Inexact Rounded
  50. radx110  add 12345  0.0001    -> 12345 Inexact Rounded
  51. radx111  add 12345  0.001     -> 12345 Inexact Rounded
  52. radx112  add 12345  0.01      -> 12345 Inexact Rounded
  53. radx113  add 12345  0.1       -> 12345 Inexact Rounded
  54.  
  55. radx115  add 12346  0.49999   -> 12346 Inexact Rounded
  56. radx116  add 12346  0.5       -> 12346 Inexact Rounded
  57. radx117  add 12346  0.50001   -> 12346 Inexact Rounded
  58.  
  59. radx120  add 12345  0.4       -> 12345 Inexact Rounded
  60. radx121  add 12345  0.49      -> 12345 Inexact Rounded
  61. radx122  add 12345  0.499     -> 12345 Inexact Rounded
  62. radx123  add 12345  0.49999   -> 12345 Inexact Rounded
  63. radx124  add 12345  0.5       -> 12345 Inexact Rounded
  64. radx125  add 12345  0.50001   -> 12345 Inexact Rounded
  65. radx126  add 12345  0.5001    -> 12345 Inexact Rounded
  66. radx127  add 12345  0.501     -> 12345 Inexact Rounded
  67. radx128  add 12345  0.51      -> 12345 Inexact Rounded
  68. radx129  add 12345  0.6       -> 12345 Inexact Rounded
  69.  
  70. rounding: half_down
  71.  
  72. radx140  add 12345 -0.1       -> 12345 Inexact Rounded
  73. radx141  add 12345 -0.01      -> 12345 Inexact Rounded
  74. radx142  add 12345 -0.001     -> 12345 Inexact Rounded
  75. radx143  add 12345 -0.00001   -> 12345 Inexact Rounded
  76. radx144  add 12345 -0.000001  -> 12345 Inexact Rounded
  77. radx145  add 12345 -0.0000001 -> 12345 Inexact Rounded
  78. radx146  add 12345  0         -> 12345
  79. radx147  add 12345  0.0000001 -> 12345 Inexact Rounded
  80. radx148  add 12345  0.000001  -> 12345 Inexact Rounded
  81. radx149  add 12345  0.00001   -> 12345 Inexact Rounded
  82. radx150  add 12345  0.0001    -> 12345 Inexact Rounded
  83. radx151  add 12345  0.001     -> 12345 Inexact Rounded
  84. radx152  add 12345  0.01      -> 12345 Inexact Rounded
  85. radx153  add 12345  0.1       -> 12345 Inexact Rounded
  86.  
  87. radx155  add 12346  0.49999   -> 12346 Inexact Rounded
  88. radx156  add 12346  0.5       -> 12346 Inexact Rounded
  89. radx157  add 12346  0.50001   -> 12347 Inexact Rounded
  90.  
  91. radx160  add 12345  0.4       -> 12345 Inexact Rounded
  92. radx161  add 12345  0.49      -> 12345 Inexact Rounded
  93. radx162  add 12345  0.499     -> 12345 Inexact Rounded
  94. radx163  add 12345  0.49999   -> 12345 Inexact Rounded
  95. radx164  add 12345  0.5       -> 12345 Inexact Rounded
  96. radx165  add 12345  0.50001   -> 12346 Inexact Rounded
  97. radx166  add 12345  0.5001    -> 12346 Inexact Rounded
  98. radx167  add 12345  0.501     -> 12346 Inexact Rounded
  99. radx168  add 12345  0.51      -> 12346 Inexact Rounded
  100. radx169  add 12345  0.6       -> 12346 Inexact Rounded
  101.  
  102. rounding: half_even
  103.  
  104. radx170  add 12345 -0.1       -> 12345 Inexact Rounded
  105. radx171  add 12345 -0.01      -> 12345 Inexact Rounded
  106. radx172  add 12345 -0.001     -> 12345 Inexact Rounded
  107. radx173  add 12345 -0.00001   -> 12345 Inexact Rounded
  108. radx174  add 12345 -0.000001  -> 12345 Inexact Rounded
  109. radx175  add 12345 -0.0000001 -> 12345 Inexact Rounded
  110. radx176  add 12345  0         -> 12345
  111. radx177  add 12345  0.0000001 -> 12345 Inexact Rounded
  112. radx178  add 12345  0.000001  -> 12345 Inexact Rounded
  113. radx179  add 12345  0.00001   -> 12345 Inexact Rounded
  114. radx180  add 12345  0.0001    -> 12345 Inexact Rounded
  115. radx181  add 12345  0.001     -> 12345 Inexact Rounded
  116. radx182  add 12345  0.01      -> 12345 Inexact Rounded
  117. radx183  add 12345  0.1       -> 12345 Inexact Rounded
  118.  
  119. radx185  add 12346  0.49999   -> 12346 Inexact Rounded
  120. radx186  add 12346  0.5       -> 12346 Inexact Rounded
  121. radx187  add 12346  0.50001   -> 12347 Inexact Rounded
  122.  
  123. radx190  add 12345  0.4       -> 12345 Inexact Rounded
  124. radx191  add 12345  0.49      -> 12345 Inexact Rounded
  125. radx192  add 12345  0.499     -> 12345 Inexact Rounded
  126. radx193  add 12345  0.49999   -> 12345 Inexact Rounded
  127. radx194  add 12345  0.5       -> 12346 Inexact Rounded
  128. radx195  add 12345  0.50001   -> 12346 Inexact Rounded
  129. radx196  add 12345  0.5001    -> 12346 Inexact Rounded
  130. radx197  add 12345  0.501     -> 12346 Inexact Rounded
  131. radx198  add 12345  0.51      -> 12346 Inexact Rounded
  132. radx199  add 12345  0.6       -> 12346 Inexact Rounded
  133.  
  134. rounding: half_up
  135.  
  136. radx200  add 12345 -0.1       -> 12345 Inexact Rounded
  137. radx201  add 12345 -0.01      -> 12345 Inexact Rounded
  138. radx202  add 12345 -0.001     -> 12345 Inexact Rounded
  139. radx203  add 12345 -0.00001   -> 12345 Inexact Rounded
  140. radx204  add 12345 -0.000001  -> 12345 Inexact Rounded
  141. radx205  add 12345 -0.0000001 -> 12345 Inexact Rounded
  142. radx206  add 12345  0         -> 12345
  143. radx207  add 12345  0.0000001 -> 12345 Inexact Rounded
  144. radx208  add 12345  0.000001  -> 12345 Inexact Rounded
  145. radx209  add 12345  0.00001   -> 12345 Inexact Rounded
  146. radx210  add 12345  0.0001    -> 12345 Inexact Rounded
  147. radx211  add 12345  0.001     -> 12345 Inexact Rounded
  148. radx212  add 12345  0.01      -> 12345 Inexact Rounded
  149. radx213  add 12345  0.1       -> 12345 Inexact Rounded
  150.  
  151. radx215  add 12346  0.49999   -> 12346 Inexact Rounded
  152. radx216  add 12346  0.5       -> 12347 Inexact Rounded
  153. radx217  add 12346  0.50001   -> 12347 Inexact Rounded
  154.  
  155. radx220  add 12345  0.4       -> 12345 Inexact Rounded
  156. radx221  add 12345  0.49      -> 12345 Inexact Rounded
  157. radx222  add 12345  0.499     -> 12345 Inexact Rounded
  158. radx223  add 12345  0.49999   -> 12345 Inexact Rounded
  159. radx224  add 12345  0.5       -> 12346 Inexact Rounded
  160. radx225  add 12345  0.50001   -> 12346 Inexact Rounded
  161. radx226  add 12345  0.5001    -> 12346 Inexact Rounded
  162. radx227  add 12345  0.501     -> 12346 Inexact Rounded
  163. radx228  add 12345  0.51      -> 12346 Inexact Rounded
  164. radx229  add 12345  0.6       -> 12346 Inexact Rounded
  165.  
  166. rounding: up
  167.  
  168. radx230  add 12345 -0.1       -> 12345 Inexact Rounded
  169. radx231  add 12345 -0.01      -> 12345 Inexact Rounded
  170. radx232  add 12345 -0.001     -> 12345 Inexact Rounded
  171. radx233  add 12345 -0.00001   -> 12345 Inexact Rounded
  172. radx234  add 12345 -0.000001  -> 12345 Inexact Rounded
  173. radx235  add 12345 -0.0000001 -> 12345 Inexact Rounded
  174. radx236  add 12345  0         -> 12345
  175. radx237  add 12345  0.0000001 -> 12346 Inexact Rounded
  176. radx238  add 12345  0.000001  -> 12346 Inexact Rounded
  177. radx239  add 12345  0.00001   -> 12346 Inexact Rounded
  178. radx240  add 12345  0.0001    -> 12346 Inexact Rounded
  179. radx241  add 12345  0.001     -> 12346 Inexact Rounded
  180. radx242  add 12345  0.01      -> 12346 Inexact Rounded
  181. radx243  add 12345  0.1       -> 12346 Inexact Rounded
  182.  
  183. radx245  add 12346  0.49999   -> 12347 Inexact Rounded
  184. radx246  add 12346  0.5       -> 12347 Inexact Rounded
  185. radx247  add 12346  0.50001   -> 12347 Inexact Rounded
  186.  
  187. radx250  add 12345  0.4       -> 12346 Inexact Rounded
  188. radx251  add 12345  0.49      -> 12346 Inexact Rounded
  189. radx252  add 12345  0.499     -> 12346 Inexact Rounded
  190. radx253  add 12345  0.49999   -> 12346 Inexact Rounded
  191. radx254  add 12345  0.5       -> 12346 Inexact Rounded
  192. radx255  add 12345  0.50001   -> 12346 Inexact Rounded
  193. radx256  add 12345  0.5001    -> 12346 Inexact Rounded
  194. radx257  add 12345  0.501     -> 12346 Inexact Rounded
  195. radx258  add 12345  0.51      -> 12346 Inexact Rounded
  196. radx259  add 12345  0.6       -> 12346 Inexact Rounded
  197.  
  198. rounding: floor
  199.  
  200. radx300  add 12345 -0.1       -> 12344 Inexact Rounded
  201. radx301  add 12345 -0.01      -> 12344 Inexact Rounded
  202. radx302  add 12345 -0.001     -> 12344 Inexact Rounded
  203. radx303  add 12345 -0.00001   -> 12344 Inexact Rounded
  204. radx304  add 12345 -0.000001  -> 12344 Inexact Rounded
  205. radx305  add 12345 -0.0000001 -> 12344 Inexact Rounded
  206. radx306  add 12345  0         -> 12345
  207. radx307  add 12345  0.0000001 -> 12345 Inexact Rounded
  208. radx308  add 12345  0.000001  -> 12345 Inexact Rounded
  209. radx309  add 12345  0.00001   -> 12345 Inexact Rounded
  210. radx310  add 12345  0.0001    -> 12345 Inexact Rounded
  211. radx311  add 12345  0.001     -> 12345 Inexact Rounded
  212. radx312  add 12345  0.01      -> 12345 Inexact Rounded
  213. radx313  add 12345  0.1       -> 12345 Inexact Rounded
  214.  
  215. radx315  add 12346  0.49999   -> 12346 Inexact Rounded
  216. radx316  add 12346  0.5       -> 12346 Inexact Rounded
  217. radx317  add 12346  0.50001   -> 12346 Inexact Rounded
  218.  
  219. radx320  add 12345  0.4       -> 12345 Inexact Rounded
  220. radx321  add 12345  0.49      -> 12345 Inexact Rounded
  221. radx322  add 12345  0.499     -> 12345 Inexact Rounded
  222. radx323  add 12345  0.49999   -> 12345 Inexact Rounded
  223. radx324  add 12345  0.5       -> 12345 Inexact Rounded
  224. radx325  add 12345  0.50001   -> 12345 Inexact Rounded
  225. radx326  add 12345  0.5001    -> 12345 Inexact Rounded
  226. radx327  add 12345  0.501     -> 12345 Inexact Rounded
  227. radx328  add 12345  0.51      -> 12345 Inexact Rounded
  228. radx329  add 12345  0.6       -> 12345 Inexact Rounded
  229.  
  230. rounding: ceiling
  231.  
  232. radx330  add 12345 -0.1       -> 12345 Inexact Rounded
  233. radx331  add 12345 -0.01      -> 12345 Inexact Rounded
  234. radx332  add 12345 -0.001     -> 12345 Inexact Rounded
  235. radx333  add 12345 -0.00001   -> 12345 Inexact Rounded
  236. radx334  add 12345 -0.000001  -> 12345 Inexact Rounded
  237. radx335  add 12345 -0.0000001 -> 12345 Inexact Rounded
  238. radx336  add 12345  0         -> 12345
  239. radx337  add 12345  0.0000001 -> 12346 Inexact Rounded
  240. radx338  add 12345  0.000001  -> 12346 Inexact Rounded
  241. radx339  add 12345  0.00001   -> 12346 Inexact Rounded
  242. radx340  add 12345  0.0001    -> 12346 Inexact Rounded
  243. radx341  add 12345  0.001     -> 12346 Inexact Rounded
  244. radx342  add 12345  0.01      -> 12346 Inexact Rounded
  245. radx343  add 12345  0.1       -> 12346 Inexact Rounded
  246.  
  247. radx345  add 12346  0.49999   -> 12347 Inexact Rounded
  248. radx346  add 12346  0.5       -> 12347 Inexact Rounded
  249. radx347  add 12346  0.50001   -> 12347 Inexact Rounded
  250.  
  251. radx350  add 12345  0.4       -> 12346 Inexact Rounded
  252. radx351  add 12345  0.49      -> 12346 Inexact Rounded
  253. radx352  add 12345  0.499     -> 12346 Inexact Rounded
  254. radx353  add 12345  0.49999   -> 12346 Inexact Rounded
  255. radx354  add 12345  0.5       -> 12346 Inexact Rounded
  256. radx355  add 12345  0.50001   -> 12346 Inexact Rounded
  257. radx356  add 12345  0.5001    -> 12346 Inexact Rounded
  258. radx357  add 12345  0.501     -> 12346 Inexact Rounded
  259. radx358  add 12345  0.51      -> 12346 Inexact Rounded
  260. radx359  add 12345  0.6       -> 12346 Inexact Rounded
  261.  
  262. -- negatives...
  263.  
  264. rounding: down
  265.  
  266. rsux100  add -12345 -0.1       -> -12345 Inexact Rounded
  267. rsux101  add -12345 -0.01      -> -12345 Inexact Rounded
  268. rsux102  add -12345 -0.001     -> -12345 Inexact Rounded
  269. rsux103  add -12345 -0.00001   -> -12345 Inexact Rounded
  270. rsux104  add -12345 -0.000001  -> -12345 Inexact Rounded
  271. rsux105  add -12345 -0.0000001 -> -12345 Inexact Rounded
  272. rsux106  add -12345  0         -> -12345
  273. rsux107  add -12345  0.0000001 -> -12344 Inexact Rounded
  274. rsux108  add -12345  0.000001  -> -12344 Inexact Rounded
  275. rsux109  add -12345  0.00001   -> -12344 Inexact Rounded
  276. rsux110  add -12345  0.0001    -> -12344 Inexact Rounded
  277. rsux111  add -12345  0.001     -> -12344 Inexact Rounded
  278. rsux112  add -12345  0.01      -> -12344 Inexact Rounded
  279. rsux113  add -12345  0.1       -> -12344 Inexact Rounded
  280.  
  281. rsux115  add -12346  0.49999   -> -12345 Inexact Rounded
  282. rsux116  add -12346  0.5       -> -12345 Inexact Rounded
  283. rsux117  add -12346  0.50001   -> -12345 Inexact Rounded
  284.  
  285. rsux120  add -12345  0.4       -> -12344 Inexact Rounded
  286. rsux121  add -12345  0.49      -> -12344 Inexact Rounded
  287. rsux122  add -12345  0.499     -> -12344 Inexact Rounded
  288. rsux123  add -12345  0.49999   -> -12344 Inexact Rounded
  289. rsux124  add -12345  0.5       -> -12344 Inexact Rounded
  290. rsux125  add -12345  0.50001   -> -12344 Inexact Rounded
  291. rsux126  add -12345  0.5001    -> -12344 Inexact Rounded
  292. rsux127  add -12345  0.501     -> -12344 Inexact Rounded
  293. rsux128  add -12345  0.51      -> -12344 Inexact Rounded
  294. rsux129  add -12345  0.6       -> -12344 Inexact Rounded
  295.  
  296. rounding: half_down
  297.  
  298. rsux140  add -12345 -0.1       -> -12345 Inexact Rounded
  299. rsux141  add -12345 -0.01      -> -12345 Inexact Rounded
  300. rsux142  add -12345 -0.001     -> -12345 Inexact Rounded
  301. rsux143  add -12345 -0.00001   -> -12345 Inexact Rounded
  302. rsux144  add -12345 -0.000001  -> -12345 Inexact Rounded
  303. rsux145  add -12345 -0.0000001 -> -12345 Inexact Rounded
  304. rsux146  add -12345  0         -> -12345
  305. rsux147  add -12345  0.0000001 -> -12345 Inexact Rounded
  306. rsux148  add -12345  0.000001  -> -12345 Inexact Rounded
  307. rsux149  add -12345  0.00001   -> -12345 Inexact Rounded
  308. rsux150  add -12345  0.0001    -> -12345 Inexact Rounded
  309. rsux151  add -12345  0.001     -> -12345 Inexact Rounded
  310. rsux152  add -12345  0.01      -> -12345 Inexact Rounded
  311. rsux153  add -12345  0.1       -> -12345 Inexact Rounded
  312.  
  313. rsux155  add -12346  0.49999   -> -12346 Inexact Rounded
  314. rsux156  add -12346  0.5       -> -12345 Inexact Rounded
  315. rsux157  add -12346  0.50001   -> -12345 Inexact Rounded
  316.  
  317. rsux160  add -12345  0.4       -> -12345 Inexact Rounded
  318. rsux161  add -12345  0.49      -> -12345 Inexact Rounded
  319. rsux162  add -12345  0.499     -> -12345 Inexact Rounded
  320. rsux163  add -12345  0.49999   -> -12345 Inexact Rounded
  321. rsux164  add -12345  0.5       -> -12344 Inexact Rounded
  322. rsux165  add -12345  0.50001   -> -12344 Inexact Rounded
  323. rsux166  add -12345  0.5001    -> -12344 Inexact Rounded
  324. rsux167  add -12345  0.501     -> -12344 Inexact Rounded
  325. rsux168  add -12345  0.51      -> -12344 Inexact Rounded
  326. rsux169  add -12345  0.6       -> -12344 Inexact Rounded
  327.  
  328. rounding: half_even
  329.  
  330. rsux170  add -12345 -0.1       -> -12345 Inexact Rounded
  331. rsux171  add -12345 -0.01      -> -12345 Inexact Rounded
  332. rsux172  add -12345 -0.001     -> -12345 Inexact Rounded
  333. rsux173  add -12345 -0.00001   -> -12345 Inexact Rounded
  334. rsux174  add -12345 -0.000001  -> -12345 Inexact Rounded
  335. rsux175  add -12345 -0.0000001 -> -12345 Inexact Rounded
  336. rsux176  add -12345  0         -> -12345
  337. rsux177  add -12345  0.0000001 -> -12345 Inexact Rounded
  338. rsux178  add -12345  0.000001  -> -12345 Inexact Rounded
  339. rsux179  add -12345  0.00001   -> -12345 Inexact Rounded
  340. rsux180  add -12345  0.0001    -> -12345 Inexact Rounded
  341. rsux181  add -12345  0.001     -> -12345 Inexact Rounded
  342. rsux182  add -12345  0.01      -> -12345 Inexact Rounded
  343. rsux183  add -12345  0.1       -> -12345 Inexact Rounded
  344.  
  345. rsux185  add -12346  0.49999   -> -12346 Inexact Rounded
  346. rsux186  add -12346  0.5       -> -12346 Inexact Rounded
  347. rsux187  add -12346  0.50001   -> -12345 Inexact Rounded
  348.  
  349. rsux190  add -12345  0.4       -> -12345 Inexact Rounded
  350. rsux191  add -12345  0.49      -> -12345 Inexact Rounded
  351. rsux192  add -12345  0.499     -> -12345 Inexact Rounded
  352. rsux193  add -12345  0.49999   -> -12345 Inexact Rounded
  353. rsux194  add -12345  0.5       -> -12344 Inexact Rounded
  354. rsux195  add -12345  0.50001   -> -12344 Inexact Rounded
  355. rsux196  add -12345  0.5001    -> -12344 Inexact Rounded
  356. rsux197  add -12345  0.501     -> -12344 Inexact Rounded
  357. rsux198  add -12345  0.51      -> -12344 Inexact Rounded
  358. rsux199  add -12345  0.6       -> -12344 Inexact Rounded
  359.  
  360. rounding: half_up
  361.  
  362. rsux200  add -12345 -0.1       -> -12345 Inexact Rounded
  363. rsux201  add -12345 -0.01      -> -12345 Inexact Rounded
  364. rsux202  add -12345 -0.001     -> -12345 Inexact Rounded
  365. rsux203  add -12345 -0.00001   -> -12345 Inexact Rounded
  366. rsux204  add -12345 -0.000001  -> -12345 Inexact Rounded
  367. rsux205  add -12345 -0.0000001 -> -12345 Inexact Rounded
  368. rsux206  add -12345  0         -> -12345
  369. rsux207  add -12345  0.0000001 -> -12345 Inexact Rounded
  370. rsux208  add -12345  0.000001  -> -12345 Inexact Rounded
  371. rsux209  add -12345  0.00001   -> -12345 Inexact Rounded
  372. rsux210  add -12345  0.0001    -> -12345 Inexact Rounded
  373. rsux211  add -12345  0.001     -> -12345 Inexact Rounded
  374. rsux212  add -12345  0.01      -> -12345 Inexact Rounded
  375. rsux213  add -12345  0.1       -> -12345 Inexact Rounded
  376.  
  377. rsux215  add -12346  0.49999   -> -12346 Inexact Rounded
  378. rsux216  add -12346  0.5       -> -12346 Inexact Rounded
  379. rsux217  add -12346  0.50001   -> -12345 Inexact Rounded
  380.  
  381. rsux220  add -12345  0.4       -> -12345 Inexact Rounded
  382. rsux221  add -12345  0.49      -> -12345 Inexact Rounded
  383. rsux222  add -12345  0.499     -> -12345 Inexact Rounded
  384. rsux223  add -12345  0.49999   -> -12345 Inexact Rounded
  385. rsux224  add -12345  0.5       -> -12345 Inexact Rounded
  386. rsux225  add -12345  0.50001   -> -12344 Inexact Rounded
  387. rsux226  add -12345  0.5001    -> -12344 Inexact Rounded
  388. rsux227  add -12345  0.501     -> -12344 Inexact Rounded
  389. rsux228  add -12345  0.51      -> -12344 Inexact Rounded
  390. rsux229  add -12345  0.6       -> -12344 Inexact Rounded
  391.  
  392. rounding: up
  393.  
  394. rsux230  add -12345 -0.1       -> -12346 Inexact Rounded
  395. rsux231  add -12345 -0.01      -> -12346 Inexact Rounded
  396. rsux232  add -12345 -0.001     -> -12346 Inexact Rounded
  397. rsux233  add -12345 -0.00001   -> -12346 Inexact Rounded
  398. rsux234  add -12345 -0.000001  -> -12346 Inexact Rounded
  399. rsux235  add -12345 -0.0000001 -> -12346 Inexact Rounded
  400. rsux236  add -12345  0         -> -12345
  401. rsux237  add -12345  0.0000001 -> -12345 Inexact Rounded
  402. rsux238  add -12345  0.000001  -> -12345 Inexact Rounded
  403. rsux239  add -12345  0.00001   -> -12345 Inexact Rounded
  404. rsux240  add -12345  0.0001    -> -12345 Inexact Rounded
  405. rsux241  add -12345  0.001     -> -12345 Inexact Rounded
  406. rsux242  add -12345  0.01      -> -12345 Inexact Rounded
  407. rsux243  add -12345  0.1       -> -12345 Inexact Rounded
  408.  
  409. rsux245  add -12346  0.49999   -> -12346 Inexact Rounded
  410. rsux246  add -12346  0.5       -> -12346 Inexact Rounded
  411. rsux247  add -12346  0.50001   -> -12346 Inexact Rounded
  412.  
  413. rsux250  add -12345  0.4       -> -12345 Inexact Rounded
  414. rsux251  add -12345  0.49      -> -12345 Inexact Rounded
  415. rsux252  add -12345  0.499     -> -12345 Inexact Rounded
  416. rsux253  add -12345  0.49999   -> -12345 Inexact Rounded
  417. rsux254  add -12345  0.5       -> -12345 Inexact Rounded
  418. rsux255  add -12345  0.50001   -> -12345 Inexact Rounded
  419. rsux256  add -12345  0.5001    -> -12345 Inexact Rounded
  420. rsux257  add -12345  0.501     -> -12345 Inexact Rounded
  421. rsux258  add -12345  0.51      -> -12345 Inexact Rounded
  422. rsux259  add -12345  0.6       -> -12345 Inexact Rounded
  423.  
  424. rounding: floor
  425.  
  426. rsux300  add -12345 -0.1       -> -12346 Inexact Rounded
  427. rsux301  add -12345 -0.01      -> -12346 Inexact Rounded
  428. rsux302  add -12345 -0.001     -> -12346 Inexact Rounded
  429. rsux303  add -12345 -0.00001   -> -12346 Inexact Rounded
  430. rsux304  add -12345 -0.000001  -> -12346 Inexact Rounded
  431. rsux305  add -12345 -0.0000001 -> -12346 Inexact Rounded
  432. rsux306  add -12345  0         -> -12345
  433. rsux307  add -12345  0.0000001 -> -12345 Inexact Rounded
  434. rsux308  add -12345  0.000001  -> -12345 Inexact Rounded
  435. rsux309  add -12345  0.00001   -> -12345 Inexact Rounded
  436. rsux310  add -12345  0.0001    -> -12345 Inexact Rounded
  437. rsux311  add -12345  0.001     -> -12345 Inexact Rounded
  438. rsux312  add -12345  0.01      -> -12345 Inexact Rounded
  439. rsux313  add -12345  0.1       -> -12345 Inexact Rounded
  440.  
  441. rsux315  add -12346  0.49999   -> -12346 Inexact Rounded
  442. rsux316  add -12346  0.5       -> -12346 Inexact Rounded
  443. rsux317  add -12346  0.50001   -> -12346 Inexact Rounded
  444.  
  445. rsux320  add -12345  0.4       -> -12345 Inexact Rounded
  446. rsux321  add -12345  0.49      -> -12345 Inexact Rounded
  447. rsux322  add -12345  0.499     -> -12345 Inexact Rounded
  448. rsux323  add -12345  0.49999   -> -12345 Inexact Rounded
  449. rsux324  add -12345  0.5       -> -12345 Inexact Rounded
  450. rsux325  add -12345  0.50001   -> -12345 Inexact Rounded
  451. rsux326  add -12345  0.5001    -> -12345 Inexact Rounded
  452. rsux327  add -12345  0.501     -> -12345 Inexact Rounded
  453. rsux328  add -12345  0.51      -> -12345 Inexact Rounded
  454. rsux329  add -12345  0.6       -> -12345 Inexact Rounded
  455.  
  456. rounding: ceiling
  457.  
  458. rsux330  add -12345 -0.1       -> -12345 Inexact Rounded
  459. rsux331  add -12345 -0.01      -> -12345 Inexact Rounded
  460. rsux332  add -12345 -0.001     -> -12345 Inexact Rounded
  461. rsux333  add -12345 -0.00001   -> -12345 Inexact Rounded
  462. rsux334  add -12345 -0.000001  -> -12345 Inexact Rounded
  463. rsux335  add -12345 -0.0000001 -> -12345 Inexact Rounded
  464. rsux336  add -12345  0         -> -12345
  465. rsux337  add -12345  0.0000001 -> -12344 Inexact Rounded
  466. rsux338  add -12345  0.000001  -> -12344 Inexact Rounded
  467. rsux339  add -12345  0.00001   -> -12344 Inexact Rounded
  468. rsux340  add -12345  0.0001    -> -12344 Inexact Rounded
  469. rsux341  add -12345  0.001     -> -12344 Inexact Rounded
  470. rsux342  add -12345  0.01      -> -12344 Inexact Rounded
  471. rsux343  add -12345  0.1       -> -12344 Inexact Rounded
  472.  
  473. rsux345  add -12346  0.49999   -> -12345 Inexact Rounded
  474. rsux346  add -12346  0.5       -> -12345 Inexact Rounded
  475. rsux347  add -12346  0.50001   -> -12345 Inexact Rounded
  476.  
  477. rsux350  add -12345  0.4       -> -12344 Inexact Rounded
  478. rsux351  add -12345  0.49      -> -12344 Inexact Rounded
  479. rsux352  add -12345  0.499     -> -12344 Inexact Rounded
  480. rsux353  add -12345  0.49999   -> -12344 Inexact Rounded
  481. rsux354  add -12345  0.5       -> -12344 Inexact Rounded
  482. rsux355  add -12345  0.50001   -> -12344 Inexact Rounded
  483. rsux356  add -12345  0.5001    -> -12344 Inexact Rounded
  484. rsux357  add -12345  0.501     -> -12344 Inexact Rounded
  485. rsux358  add -12345  0.51      -> -12344 Inexact Rounded
  486. rsux359  add -12345  0.6       -> -12344 Inexact Rounded
  487.  
  488. -- Check cancellation subtractions
  489. -- (The IEEE 854 'curious rule' in $6.3)
  490.  
  491. rounding: down
  492. rzex001  add  0    0    ->  0
  493. rzex002  add  0   -0    ->  0
  494. rzex003  add -0    0    ->  0
  495. rzex004  add -0   -0    -> -0
  496. rzex005  add  1   -1    ->  0
  497. rzex006  add -1    1    ->  0
  498. rzex007  add  1.5 -1.5  ->  0.0
  499. rzex008  add -1.5  1.5  ->  0.0
  500. rzex009  add  2   -2    ->  0
  501. rzex010  add -2    2    ->  0
  502.  
  503. rounding: up
  504. rzex011  add  0    0    ->  0
  505. rzex012  add  0   -0    ->  0
  506. rzex013  add -0    0    ->  0
  507. rzex014  add -0   -0    -> -0
  508. rzex015  add  1   -1    ->  0
  509. rzex016  add -1    1    ->  0
  510. rzex017  add  1.5 -1.5  ->  0.0
  511. rzex018  add -1.5  1.5  ->  0.0
  512. rzex019  add  2   -2    ->  0
  513. rzex020  add -2    2    ->  0
  514.  
  515. rounding: half_up
  516. rzex021  add  0    0    ->  0
  517. rzex022  add  0   -0    ->  0
  518. rzex023  add -0    0    ->  0
  519. rzex024  add -0   -0    -> -0
  520. rzex025  add  1   -1    ->  0
  521. rzex026  add -1    1    ->  0
  522. rzex027  add  1.5 -1.5  ->  0.0
  523. rzex028  add -1.5  1.5  ->  0.0
  524. rzex029  add  2   -2    ->  0
  525. rzex030  add -2    2    ->  0
  526.  
  527. rounding: half_down
  528. rzex031  add  0    0    ->  0
  529. rzex032  add  0   -0    ->  0
  530. rzex033  add -0    0    ->  0
  531. rzex034  add -0   -0    -> -0
  532. rzex035  add  1   -1    ->  0
  533. rzex036  add -1    1    ->  0
  534. rzex037  add  1.5 -1.5  ->  0.0
  535. rzex038  add -1.5  1.5  ->  0.0
  536. rzex039  add  2   -2    ->  0
  537. rzex040  add -2    2    ->  0
  538.  
  539. rounding: half_even
  540. rzex041  add  0    0    ->  0
  541. rzex042  add  0   -0    ->  0
  542. rzex043  add -0    0    ->  0
  543. rzex044  add -0   -0    -> -0
  544. rzex045  add  1   -1    ->  0
  545. rzex046  add -1    1    ->  0
  546. rzex047  add  1.5 -1.5  ->  0.0
  547. rzex048  add -1.5  1.5  ->  0.0
  548. rzex049  add  2   -2    ->  0
  549. rzex050  add -2    2    ->  0
  550.  
  551. rounding: floor
  552. rzex051  add  0    0    ->  0
  553. rzex052  add  0   -0    -> -0    -- here are two 'curious'
  554. rzex053  add -0    0    -> -0    --
  555. rzex054  add -0   -0    -> -0
  556. rzex055  add  1   -1    -> -0    -- here are the rest
  557. rzex056  add -1    1    -> -0    -- ..
  558. rzex057  add  1.5 -1.5  -> -0.0  -- ..
  559. rzex058  add -1.5  1.5  -> -0.0  -- ..
  560. rzex059  add  2   -2    -> -0    -- ..
  561. rzex060  add -2    2    -> -0    -- ..
  562.  
  563. rounding: ceiling
  564. rzex061  add  0    0    ->  0
  565. rzex062  add  0   -0    ->  0
  566. rzex063  add -0    0    ->  0
  567. rzex064  add -0   -0    -> -0
  568. rzex065  add  1   -1    ->  0
  569. rzex066  add -1    1    ->  0
  570. rzex067  add  1.5 -1.5  ->  0.0
  571. rzex068  add -1.5  1.5  ->  0.0
  572. rzex069  add  2   -2    ->  0
  573. rzex070  add -2    2    ->  0
  574.  
  575.  
  576. -- Division operators -------------------------------------------------
  577.  
  578. rounding: down
  579. rdvx101  divide 12345  1         ->  12345
  580. rdvx102  divide 12345  1.0001    ->  12343 Inexact Rounded
  581. rdvx103  divide 12345  1.001     ->  12332 Inexact Rounded
  582. rdvx104  divide 12345  1.01      ->  12222 Inexact Rounded
  583. rdvx105  divide 12345  1.1       ->  11222 Inexact Rounded
  584. rdvx106  divide 12355  4         ->   3088.7 Inexact Rounded
  585. rdvx107  divide 12345  4         ->   3086.2 Inexact Rounded
  586. rdvx108  divide 12355  4.0001    ->   3088.6 Inexact Rounded
  587. rdvx109  divide 12345  4.0001    ->   3086.1 Inexact Rounded
  588. rdvx110  divide 12345  4.9       ->   2519.3 Inexact Rounded
  589. rdvx111  divide 12345  4.99      ->   2473.9 Inexact Rounded
  590. rdvx112  divide 12345  4.999     ->   2469.4 Inexact Rounded
  591. rdvx113  divide 12345  4.9999    ->   2469.0 Inexact Rounded
  592. rdvx114  divide 12345  5         ->   2469
  593. rdvx115  divide 12345  5.0001    ->  2468.9 Inexact Rounded
  594. rdvx116  divide 12345  5.001     ->  2468.5 Inexact Rounded
  595. rdvx117  divide 12345  5.01      ->  2464.0 Inexact Rounded
  596. rdvx118  divide 12345  5.1       ->  2420.5 Inexact Rounded
  597.  
  598. rounding: half_down
  599. rdvx201  divide 12345  1         ->  12345
  600. rdvx202  divide 12345  1.0001    ->  12344 Inexact Rounded
  601. rdvx203  divide 12345  1.001     ->  12333 Inexact Rounded
  602. rdvx204  divide 12345  1.01      ->  12223 Inexact Rounded
  603. rdvx205  divide 12345  1.1       ->  11223 Inexact Rounded
  604. rdvx206  divide 12355  4         ->   3088.7 Inexact Rounded
  605. rdvx207  divide 12345  4         ->   3086.2 Inexact Rounded
  606. rdvx208  divide 12355  4.0001    ->   3088.7 Inexact Rounded
  607. rdvx209  divide 12345  4.0001    ->   3086.2 Inexact Rounded
  608. rdvx210  divide 12345  4.9       ->   2519.4 Inexact Rounded
  609. rdvx211  divide 12345  4.99      ->   2473.9 Inexact Rounded
  610. rdvx212  divide 12345  4.999     ->   2469.5 Inexact Rounded
  611. rdvx213  divide 12345  4.9999    ->   2469.0 Inexact Rounded
  612. rdvx214  divide 12345  5         ->   2469
  613. rdvx215  divide 12345  5.0001    ->  2469.0 Inexact Rounded
  614. rdvx216  divide 12345  5.001     ->  2468.5 Inexact Rounded
  615. rdvx217  divide 12345  5.01      ->  2464.1 Inexact Rounded
  616. rdvx218  divide 12345  5.1       ->  2420.6 Inexact Rounded
  617.  
  618. rounding: half_even
  619. rdvx301  divide 12345  1         ->  12345
  620. rdvx302  divide 12345  1.0001    ->  12344 Inexact Rounded
  621. rdvx303  divide 12345  1.001     ->  12333 Inexact Rounded
  622. rdvx304  divide 12345  1.01      ->  12223 Inexact Rounded
  623. rdvx305  divide 12345  1.1       ->  11223 Inexact Rounded
  624. rdvx306  divide 12355  4         ->   3088.8 Inexact Rounded
  625. rdvx307  divide 12345  4         ->   3086.2 Inexact Rounded
  626. rdvx308  divide 12355  4.0001    ->   3088.7 Inexact Rounded
  627. rdvx309  divide 12345  4.0001    ->   3086.2 Inexact Rounded
  628. rdvx310  divide 12345  4.9       ->   2519.4 Inexact Rounded
  629. rdvx311  divide 12345  4.99      ->   2473.9 Inexact Rounded
  630. rdvx312  divide 12345  4.999     ->   2469.5 Inexact Rounded
  631. rdvx313  divide 12345  4.9999    ->   2469.0 Inexact Rounded
  632. rdvx314  divide 12345  5         ->   2469
  633. rdvx315  divide 12345  5.0001    ->  2469.0 Inexact Rounded
  634. rdvx316  divide 12345  5.001     ->  2468.5 Inexact Rounded
  635. rdvx317  divide 12345  5.01      ->  2464.1 Inexact Rounded
  636. rdvx318  divide 12345  5.1       ->  2420.6 Inexact Rounded
  637.  
  638. rounding: half_up
  639. rdvx401  divide 12345  1         ->  12345
  640. rdvx402  divide 12345  1.0001    ->  12344 Inexact Rounded
  641. rdvx403  divide 12345  1.001     ->  12333 Inexact Rounded
  642. rdvx404  divide 12345  1.01      ->  12223 Inexact Rounded
  643. rdvx405  divide 12345  1.1       ->  11223 Inexact Rounded
  644. rdvx406  divide 12355  4         ->   3088.8 Inexact Rounded
  645. rdvx407  divide 12345  4         ->   3086.3 Inexact Rounded
  646. rdvx408  divide 12355  4.0001    ->   3088.7 Inexact Rounded
  647. rdvx409  divide 12345  4.0001    ->   3086.2 Inexact Rounded
  648. rdvx410  divide 12345  4.9       ->   2519.4 Inexact Rounded
  649. rdvx411  divide 12345  4.99      ->   2473.9 Inexact Rounded
  650. rdvx412  divide 12345  4.999     ->   2469.5 Inexact Rounded
  651. rdvx413  divide 12345  4.9999    ->   2469.0 Inexact Rounded
  652. rdvx414  divide 12345  5         ->   2469
  653. rdvx415  divide 12345  5.0001    ->  2469.0 Inexact Rounded
  654. rdvx416  divide 12345  5.001     ->  2468.5 Inexact Rounded
  655. rdvx417  divide 12345  5.01      ->  2464.1 Inexact Rounded
  656. rdvx418  divide 12345  5.1       ->  2420.6 Inexact Rounded
  657.  
  658. rounding: up
  659. rdvx501  divide 12345  1         ->  12345
  660. rdvx502  divide 12345  1.0001    ->  12344 Inexact Rounded
  661. rdvx503  divide 12345  1.001     ->  12333 Inexact Rounded
  662. rdvx504  divide 12345  1.01      ->  12223 Inexact Rounded
  663. rdvx505  divide 12345  1.1       ->  11223 Inexact Rounded
  664. rdvx506  divide 12355  4         ->   3088.8 Inexact Rounded
  665. rdvx507  divide 12345  4         ->   3086.3 Inexact Rounded
  666. rdvx508  divide 12355  4.0001    ->   3088.7 Inexact Rounded
  667. rdvx509  divide 12345  4.0001    ->   3086.2 Inexact Rounded
  668. rdvx510  divide 12345  4.9       ->   2519.4 Inexact Rounded
  669. rdvx511  divide 12345  4.99      ->   2474.0 Inexact Rounded
  670. rdvx512  divide 12345  4.999     ->   2469.5 Inexact Rounded
  671. rdvx513  divide 12345  4.9999    ->   2469.1 Inexact Rounded
  672. rdvx514  divide 12345  5         ->   2469
  673. rdvx515  divide 12345  5.0001    ->  2469.0 Inexact Rounded
  674. rdvx516  divide 12345  5.001     ->  2468.6 Inexact Rounded
  675. rdvx517  divide 12345  5.01      ->  2464.1 Inexact Rounded
  676. rdvx518  divide 12345  5.1       ->  2420.6 Inexact Rounded
  677.  
  678. rounding: floor
  679. rdvx601  divide 12345  1         ->  12345
  680. rdvx602  divide 12345  1.0001    ->  12343 Inexact Rounded
  681. rdvx603  divide 12345  1.001     ->  12332 Inexact Rounded
  682. rdvx604  divide 12345  1.01      ->  12222 Inexact Rounded
  683. rdvx605  divide 12345  1.1       ->  11222 Inexact Rounded
  684. rdvx606  divide 12355  4         ->   3088.7 Inexact Rounded
  685. rdvx607  divide 12345  4         ->   3086.2 Inexact Rounded
  686. rdvx608  divide 12355  4.0001    ->   3088.6 Inexact Rounded
  687. rdvx609  divide 12345  4.0001    ->   3086.1 Inexact Rounded
  688. rdvx610  divide 12345  4.9       ->   2519.3 Inexact Rounded
  689. rdvx611  divide 12345  4.99      ->   2473.9 Inexact Rounded
  690. rdvx612  divide 12345  4.999     ->   2469.4 Inexact Rounded
  691. rdvx613  divide 12345  4.9999    ->   2469.0 Inexact Rounded
  692. rdvx614  divide 12345  5         ->   2469
  693. rdvx615  divide 12345  5.0001    ->  2468.9 Inexact Rounded
  694. rdvx616  divide 12345  5.001     ->  2468.5 Inexact Rounded
  695. rdvx617  divide 12345  5.01      ->  2464.0 Inexact Rounded
  696. rdvx618  divide 12345  5.1       ->  2420.5 Inexact Rounded
  697.  
  698. rounding: ceiling
  699. rdvx701  divide 12345  1         ->  12345
  700. rdvx702  divide 12345  1.0001    ->  12344 Inexact Rounded
  701. rdvx703  divide 12345  1.001     ->  12333 Inexact Rounded
  702. rdvx704  divide 12345  1.01      ->  12223 Inexact Rounded
  703. rdvx705  divide 12345  1.1       ->  11223 Inexact Rounded
  704. rdvx706  divide 12355  4         ->   3088.8 Inexact Rounded
  705. rdvx707  divide 12345  4         ->   3086.3 Inexact Rounded
  706. rdvx708  divide 12355  4.0001    ->   3088.7 Inexact Rounded
  707. rdvx709  divide 12345  4.0001    ->   3086.2 Inexact Rounded
  708. rdvx710  divide 12345  4.9       ->   2519.4 Inexact Rounded
  709. rdvx711  divide 12345  4.99      ->   2474.0 Inexact Rounded
  710. rdvx712  divide 12345  4.999     ->   2469.5 Inexact Rounded
  711. rdvx713  divide 12345  4.9999    ->   2469.1 Inexact Rounded
  712. rdvx714  divide 12345  5         ->   2469
  713. rdvx715  divide 12345  5.0001    ->  2469.0 Inexact Rounded
  714. rdvx716  divide 12345  5.001     ->  2468.6 Inexact Rounded
  715. rdvx717  divide 12345  5.01      ->  2464.1 Inexact Rounded
  716. rdvx718  divide 12345  5.1       ->  2420.6 Inexact Rounded
  717.  
  718. -- [divideInteger and remainder unaffected]
  719.  
  720. -- Multiplication operator --------------------------------------------
  721.  
  722. rounding: down
  723. rmux101  multiply 12345  1         ->  12345
  724. rmux102  multiply 12345  1.0001    ->  12346 Inexact Rounded
  725. rmux103  multiply 12345  1.001     ->  12357 Inexact Rounded
  726. rmux104  multiply 12345  1.01      ->  12468 Inexact Rounded
  727. rmux105  multiply 12345  1.1       ->  13579 Inexact Rounded
  728. rmux106  multiply 12345  4         ->  49380
  729. rmux107  multiply 12345  4.0001    ->  49381 Inexact Rounded
  730. rmux108  multiply 12345  4.9       ->  60490 Inexact Rounded
  731. rmux109  multiply 12345  4.99      ->  61601 Inexact Rounded
  732. rmux110  multiply 12345  4.999     ->  61712 Inexact Rounded
  733. rmux111  multiply 12345  4.9999    ->  61723 Inexact Rounded
  734. rmux112  multiply 12345  5         ->  61725
  735. rmux113  multiply 12345  5.0001    ->  61726 Inexact Rounded
  736. rmux114  multiply 12345  5.001     ->  61737 Inexact Rounded
  737. rmux115  multiply 12345  5.01      ->  61848 Inexact Rounded
  738. rmux116  multiply 12345  12        ->  1.4814E+5 Rounded
  739. rmux117  multiply 12345  13        ->  1.6048E+5 Inexact Rounded
  740. rmux118  multiply 12355  12        ->  1.4826E+5 Rounded
  741. rmux119  multiply 12355  13        ->  1.6061E+5 Inexact Rounded
  742.  
  743. rounding: half_down
  744. rmux201  multiply 12345  1         ->  12345
  745. rmux202  multiply 12345  1.0001    ->  12346 Inexact Rounded
  746. rmux203  multiply 12345  1.001     ->  12357 Inexact Rounded
  747. rmux204  multiply 12345  1.01      ->  12468 Inexact Rounded
  748. rmux205  multiply 12345  1.1       ->  13579 Inexact Rounded
  749. rmux206  multiply 12345  4         ->  49380
  750. rmux207  multiply 12345  4.0001    ->  49381 Inexact Rounded
  751. rmux208  multiply 12345  4.9       ->  60490 Inexact Rounded
  752. rmux209  multiply 12345  4.99      ->  61602 Inexact Rounded
  753. rmux210  multiply 12345  4.999     ->  61713 Inexact Rounded
  754. rmux211  multiply 12345  4.9999    ->  61724 Inexact Rounded
  755. rmux212  multiply 12345  5         ->  61725
  756. rmux213  multiply 12345  5.0001    ->  61726 Inexact Rounded
  757. rmux214  multiply 12345  5.001     ->  61737 Inexact Rounded
  758. rmux215  multiply 12345  5.01      ->  61848 Inexact Rounded
  759. rmux216  multiply 12345  12        ->  1.4814E+5 Rounded
  760. rmux217  multiply 12345  13        ->  1.6048E+5 Inexact Rounded
  761. rmux218  multiply 12355  12        ->  1.4826E+5 Rounded
  762. rmux219  multiply 12355  13        ->  1.6061E+5 Inexact Rounded
  763.  
  764. rounding: half_even
  765. rmux301  multiply 12345  1         ->  12345
  766. rmux302  multiply 12345  1.0001    ->  12346 Inexact Rounded
  767. rmux303  multiply 12345  1.001     ->  12357 Inexact Rounded
  768. rmux304  multiply 12345  1.01      ->  12468 Inexact Rounded
  769. rmux305  multiply 12345  1.1       ->  13580 Inexact Rounded
  770. rmux306  multiply 12345  4         ->  49380
  771. rmux307  multiply 12345  4.0001    ->  49381 Inexact Rounded
  772. rmux308  multiply 12345  4.9       ->  60490 Inexact Rounded
  773. rmux309  multiply 12345  4.99      ->  61602 Inexact Rounded
  774. rmux310  multiply 12345  4.999     ->  61713 Inexact Rounded
  775. rmux311  multiply 12345  4.9999    ->  61724 Inexact Rounded
  776. rmux312  multiply 12345  5         ->  61725
  777. rmux313  multiply 12345  5.0001    ->  61726 Inexact Rounded
  778. rmux314  multiply 12345  5.001     ->  61737 Inexact Rounded
  779. rmux315  multiply 12345  5.01      ->  61848 Inexact Rounded
  780. rmux316  multiply 12345  12        ->  1.4814E+5 Rounded
  781. rmux317  multiply 12345  13        ->  1.6048E+5 Inexact Rounded
  782. rmux318  multiply 12355  12        ->  1.4826E+5 Rounded
  783. rmux319  multiply 12355  13        ->  1.6062E+5 Inexact Rounded
  784.  
  785. rounding: half_up
  786. rmux401  multiply 12345  1         ->  12345
  787. rmux402  multiply 12345  1.0001    ->  12346 Inexact Rounded
  788. rmux403  multiply 12345  1.001     ->  12357 Inexact Rounded
  789. rmux404  multiply 12345  1.01      ->  12468 Inexact Rounded
  790. rmux405  multiply 12345  1.1       ->  13580 Inexact Rounded
  791. rmux406  multiply 12345  4         ->  49380
  792. rmux407  multiply 12345  4.0001    ->  49381 Inexact Rounded
  793. rmux408  multiply 12345  4.9       ->  60491 Inexact Rounded
  794. rmux409  multiply 12345  4.99      ->  61602 Inexact Rounded
  795. rmux410  multiply 12345  4.999     ->  61713 Inexact Rounded
  796. rmux411  multiply 12345  4.9999    ->  61724 Inexact Rounded
  797. rmux412  multiply 12345  5         ->  61725
  798. rmux413  multiply 12345  5.0001    ->  61726 Inexact Rounded
  799. rmux414  multiply 12345  5.001     ->  61737 Inexact Rounded
  800. rmux415  multiply 12345  5.01      ->  61848 Inexact Rounded
  801. rmux416  multiply 12345  12        ->  1.4814E+5 Rounded
  802. rmux417  multiply 12345  13        ->  1.6049E+5 Inexact Rounded
  803. rmux418  multiply 12355  12        ->  1.4826E+5 Rounded
  804. rmux419  multiply 12355  13        ->  1.6062E+5 Inexact Rounded
  805.  
  806. rounding: up
  807. rmux501  multiply 12345  1         ->  12345
  808. rmux502  multiply 12345  1.0001    ->  12347 Inexact Rounded
  809. rmux503  multiply 12345  1.001     ->  12358 Inexact Rounded
  810. rmux504  multiply 12345  1.01      ->  12469 Inexact Rounded
  811. rmux505  multiply 12345  1.1       ->  13580 Inexact Rounded
  812. rmux506  multiply 12345  4         ->  49380
  813. rmux507  multiply 12345  4.0001    ->  49382 Inexact Rounded
  814. rmux508  multiply 12345  4.9       ->  60491 Inexact Rounded
  815. rmux509  multiply 12345  4.99      ->  61602 Inexact Rounded
  816. rmux510  multiply 12345  4.999     ->  61713 Inexact Rounded
  817. rmux511  multiply 12345  4.9999    ->  61724 Inexact Rounded
  818. rmux512  multiply 12345  5         ->  61725
  819. rmux513  multiply 12345  5.0001    ->  61727 Inexact Rounded
  820. rmux514  multiply 12345  5.001     ->  61738 Inexact Rounded
  821. rmux515  multiply 12345  5.01      ->  61849 Inexact Rounded
  822. rmux516  multiply 12345  12        ->  1.4814E+5 Rounded
  823. rmux517  multiply 12345  13        ->  1.6049E+5 Inexact Rounded
  824. rmux518  multiply 12355  12        ->  1.4826E+5 Rounded
  825. rmux519  multiply 12355  13        ->  1.6062E+5 Inexact Rounded
  826. -- [rmux516 & rmux518] can surprise
  827.  
  828. rounding: floor
  829. rmux601  multiply 12345  1         ->  12345
  830. rmux602  multiply 12345  1.0001    ->  12346 Inexact Rounded
  831. rmux603  multiply 12345  1.001     ->  12357 Inexact Rounded
  832. rmux604  multiply 12345  1.01      ->  12468 Inexact Rounded
  833. rmux605  multiply 12345  1.1       ->  13579 Inexact Rounded
  834. rmux606  multiply 12345  4         ->  49380
  835. rmux607  multiply 12345  4.0001    ->  49381 Inexact Rounded
  836. rmux608  multiply 12345  4.9       ->  60490 Inexact Rounded
  837. rmux609  multiply 12345  4.99      ->  61601 Inexact Rounded
  838. rmux610  multiply 12345  4.999     ->  61712 Inexact Rounded
  839. rmux611  multiply 12345  4.9999    ->  61723 Inexact Rounded
  840. rmux612  multiply 12345  5         ->  61725
  841. rmux613  multiply 12345  5.0001    ->  61726 Inexact Rounded
  842. rmux614  multiply 12345  5.001     ->  61737 Inexact Rounded
  843. rmux615  multiply 12345  5.01      ->  61848 Inexact Rounded
  844. rmux616  multiply 12345  12        ->  1.4814E+5 Rounded
  845. rmux617  multiply 12345  13        ->  1.6048E+5 Inexact Rounded
  846. rmux618  multiply 12355  12        ->  1.4826E+5 Rounded
  847. rmux619  multiply 12355  13        ->  1.6061E+5 Inexact Rounded
  848.  
  849. rounding: ceiling
  850. rmux701  multiply 12345  1         ->  12345
  851. rmux702  multiply 12345  1.0001    ->  12347 Inexact Rounded
  852. rmux703  multiply 12345  1.001     ->  12358 Inexact Rounded
  853. rmux704  multiply 12345  1.01      ->  12469 Inexact Rounded
  854. rmux705  multiply 12345  1.1       ->  13580 Inexact Rounded
  855. rmux706  multiply 12345  4         ->  49380
  856. rmux707  multiply 12345  4.0001    ->  49382 Inexact Rounded
  857. rmux708  multiply 12345  4.9       ->  60491 Inexact Rounded
  858. rmux709  multiply 12345  4.99      ->  61602 Inexact Rounded
  859. rmux710  multiply 12345  4.999     ->  61713 Inexact Rounded
  860. rmux711  multiply 12345  4.9999    ->  61724 Inexact Rounded
  861. rmux712  multiply 12345  5         ->  61725
  862. rmux713  multiply 12345  5.0001    ->  61727 Inexact Rounded
  863. rmux714  multiply 12345  5.001     ->  61738 Inexact Rounded
  864. rmux715  multiply 12345  5.01      ->  61849 Inexact Rounded
  865. rmux716  multiply 12345  12        ->  1.4814E+5 Rounded
  866. rmux717  multiply 12345  13        ->  1.6049E+5 Inexact Rounded
  867. rmux718  multiply 12355  12        ->  1.4826E+5 Rounded
  868. rmux719  multiply 12355  13        ->  1.6062E+5 Inexact Rounded
  869.  
  870. -- Power operator -----------------------------------------------------
  871.  
  872. rounding: down
  873. rpox101  power 12345  -5        ->  3.4877E-21 Inexact Rounded
  874. rpox102  power 12345  -4        ->  4.3056E-17 Inexact Rounded
  875. rpox103  power 12345  -3        ->  5.3152E-13 Inexact Rounded
  876. rpox104  power 12345  -2        ->  6.5617E-9 Inexact Rounded
  877. rpox105  power 12345  -1        ->  0.000081004 Inexact Rounded
  878. rpox106  power 12345  0         ->  1
  879. rpox107  power 12345  1         ->  12345
  880. rpox108  power 12345  2         ->  1.5239E+8 Inexact Rounded
  881. rpox109  power 12345  3         ->  1.8813E+12 Inexact Rounded
  882. rpox110  power 12345  4         ->  2.3225E+16 Inexact Rounded
  883. rpox111  power 12345  5         ->  2.8671E+20 Inexact Rounded
  884. rpox112  power   415  2         ->  1.7222E+5 Inexact Rounded
  885. rpox113  power    75  3         ->  4.2187E+5 Inexact Rounded
  886.  
  887. rounding: half_down
  888. rpox201  power 12345  -5        ->  3.4877E-21 Inexact Rounded
  889. rpox202  power 12345  -4        ->  4.3056E-17 Inexact Rounded
  890. rpox203  power 12345  -3        ->  5.3153E-13 Inexact Rounded
  891. rpox204  power 12345  -2        ->  6.5617E-9 Inexact Rounded
  892. rpox205  power 12345  -1        ->  0.000081004 Inexact Rounded
  893. rpox206  power 12345  0         ->  1
  894. rpox207  power 12345  1         ->  12345
  895. rpox208  power 12345  2         ->  1.5240E+8 Inexact Rounded
  896. rpox209  power 12345  3         ->  1.8814E+12 Inexact Rounded
  897. rpox210  power 12345  4         ->  2.3225E+16 Inexact Rounded
  898. rpox211  power 12345  5         ->  2.8672E+20 Inexact Rounded
  899. rpox212  power   415  2         ->  1.7222E+5 Inexact Rounded
  900. rpox213  power    75  3         ->  4.2187E+5 Inexact Rounded
  901.  
  902. rounding: half_even
  903. rpox301  power 12345  -5        ->  3.4877E-21 Inexact Rounded
  904. rpox302  power 12345  -4        ->  4.3056E-17 Inexact Rounded
  905. rpox303  power 12345  -3        ->  5.3153E-13 Inexact Rounded
  906. rpox304  power 12345  -2        ->  6.5617E-9 Inexact Rounded
  907. rpox305  power 12345  -1        ->  0.000081004 Inexact Rounded
  908. rpox306  power 12345  0         ->  1
  909. rpox307  power 12345  1         ->  12345
  910. rpox308  power 12345  2         ->  1.5240E+8 Inexact Rounded
  911. rpox309  power 12345  3         ->  1.8814E+12 Inexact Rounded
  912. rpox310  power 12345  4         ->  2.3225E+16 Inexact Rounded
  913. rpox311  power 12345  5         ->  2.8672E+20 Inexact Rounded
  914. rpox312  power   415  2         ->  1.7222E+5 Inexact Rounded
  915. rpox313  power    75  3         ->  4.2188E+5 Inexact Rounded
  916.  
  917. rounding: half_up
  918. rpox401  power 12345  -5        ->  3.4877E-21 Inexact Rounded
  919. rpox402  power 12345  -4        ->  4.3056E-17 Inexact Rounded
  920. rpox403  power 12345  -3        ->  5.3153E-13 Inexact Rounded
  921. rpox404  power 12345  -2        ->  6.5617E-9 Inexact Rounded
  922. rpox405  power 12345  -1        ->  0.000081004 Inexact Rounded
  923. rpox406  power 12345  0         ->  1
  924. rpox407  power 12345  1         ->  12345
  925. rpox408  power 12345  2         ->  1.5240E+8 Inexact Rounded
  926. rpox409  power 12345  3         ->  1.8814E+12 Inexact Rounded
  927. rpox410  power 12345  4         ->  2.3225E+16 Inexact Rounded
  928. rpox411  power 12345  5         ->  2.8672E+20 Inexact Rounded
  929. rpox412  power   415  2         ->  1.7223E+5 Inexact Rounded
  930. rpox413  power    75  3         ->  4.2188E+5 Inexact Rounded
  931.  
  932. rounding: up
  933. rpox501  power 12345  -5        ->  3.4878E-21 Inexact Rounded
  934. rpox502  power 12345  -4        ->  4.3057E-17 Inexact Rounded
  935. rpox503  power 12345  -3        ->  5.3153E-13 Inexact Rounded
  936. rpox504  power 12345  -2        ->  6.5618E-9 Inexact Rounded
  937. rpox505  power 12345  -1        ->  0.000081005 Inexact Rounded
  938. rpox506  power 12345  0         ->  1
  939. rpox507  power 12345  1         ->  12345
  940. rpox508  power 12345  2         ->  1.5240E+8 Inexact Rounded
  941. rpox509  power 12345  3         ->  1.8814E+12 Inexact Rounded
  942. rpox510  power 12345  4         ->  2.3226E+16 Inexact Rounded
  943. rpox511  power 12345  5         ->  2.8672E+20 Inexact Rounded
  944. rpox512  power   415  2         ->  1.7223E+5 Inexact Rounded
  945. rpox513  power    75  3         ->  4.2188E+5 Inexact Rounded
  946.  
  947. rounding: floor
  948. rpox601  power 12345  -5        ->  3.4877E-21 Inexact Rounded
  949. rpox602  power 12345  -4        ->  4.3056E-17 Inexact Rounded
  950. rpox603  power 12345  -3        ->  5.3152E-13 Inexact Rounded
  951. rpox604  power 12345  -2        ->  6.5617E-9 Inexact Rounded
  952. rpox605  power 12345  -1        ->  0.000081004 Inexact Rounded
  953. rpox606  power 12345  0         ->  1
  954. rpox607  power 12345  1         ->  12345
  955. rpox608  power 12345  2         ->  1.5239E+8 Inexact Rounded
  956. rpox609  power 12345  3         ->  1.8813E+12 Inexact Rounded
  957. rpox610  power 12345  4         ->  2.3225E+16 Inexact Rounded
  958. rpox611  power 12345  5         ->  2.8671E+20 Inexact Rounded
  959. rpox612  power   415  2         ->  1.7222E+5 Inexact Rounded
  960. rpox613  power    75  3         ->  4.2187E+5 Inexact Rounded
  961.  
  962. rounding: ceiling
  963. rpox701  power 12345  -5        ->  3.4878E-21 Inexact Rounded
  964. rpox702  power 12345  -4        ->  4.3057E-17 Inexact Rounded
  965. rpox703  power 12345  -3        ->  5.3153E-13 Inexact Rounded
  966. rpox704  power 12345  -2        ->  6.5618E-9 Inexact Rounded
  967. rpox705  power 12345  -1        ->  0.000081005 Inexact Rounded
  968. rpox706  power 12345  0         ->  1
  969. rpox707  power 12345  1         ->  12345
  970. rpox708  power 12345  2         ->  1.5240E+8 Inexact Rounded
  971. rpox709  power 12345  3         ->  1.8814E+12 Inexact Rounded
  972. rpox710  power 12345  4         ->  2.3226E+16 Inexact Rounded
  973. rpox711  power 12345  5         ->  2.8672E+20 Inexact Rounded
  974. rpox712  power   415  2         ->  1.7223E+5 Inexact Rounded
  975. rpox713  power    75  3         ->  4.2188E+5 Inexact Rounded
  976.  
  977. -- Underflow Subnormal and overflow values vary with rounding mode and sign
  978. maxexponent: 999999999
  979. minexponent: -999999999
  980. rounding: down
  981. rovx100  multiply   10    9E+999999999 ->  9.9999E+999999999 Overflow Inexact Rounded
  982. rovx101  multiply  -10    9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded
  983. rovx102  divide     1E-9  9E+999999999 ->  0E-1000000003 Underflow Subnormal Inexact Rounded
  984. rovx104  divide    -1E-9  9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded
  985.  
  986. rounding: up
  987. rovx110  multiply   10    9E+999999999 ->  Infinity Overflow Inexact Rounded
  988. rovx111  multiply  -10    9E+999999999 -> -Infinity Overflow Inexact Rounded
  989. rovx112  divide     1E-9  9E+999999999 ->  1E-1000000003 Underflow Subnormal Inexact Rounded
  990. rovx114  divide    -1E-9  9E+999999999 -> -1E-1000000003 Underflow Subnormal Inexact Rounded
  991.  
  992. rounding: ceiling
  993. rovx120  multiply   10    9E+999999999 ->  Infinity Overflow Inexact Rounded
  994. rovx121  multiply  -10    9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded
  995. rovx122  divide     1E-9  9E+999999999 ->  1E-1000000003 Underflow Subnormal Inexact Rounded
  996. rovx124  divide    -1E-9  9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded
  997.  
  998. rounding: floor
  999. rovx130  multiply   10    9E+999999999 ->  9.9999E+999999999 Overflow Inexact Rounded
  1000. rovx131  multiply  -10    9E+999999999 -> -Infinity Overflow Inexact Rounded
  1001. rovx132  divide     1E-9  9E+999999999 ->  0E-1000000003 Underflow Subnormal Inexact Rounded
  1002. rovx134  divide    -1E-9  9E+999999999 -> -1E-1000000003 Underflow Subnormal Inexact Rounded
  1003.  
  1004. rounding: half_up
  1005. rovx140  multiply   10    9E+999999999 ->  Infinity Overflow Inexact Rounded
  1006. rovx141  multiply  -10    9E+999999999 -> -Infinity Overflow Inexact Rounded
  1007. rovx142  divide     1E-9  9E+999999999 ->  0E-1000000003 Underflow Subnormal Inexact Rounded
  1008. rovx144  divide    -1E-9  9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded
  1009.  
  1010. rounding: half_even
  1011. rovx150  multiply   10    9E+999999999 ->  Infinity Overflow Inexact Rounded
  1012. rovx151  multiply  -10    9E+999999999 -> -Infinity Overflow Inexact Rounded
  1013. rovx152  divide     1E-9  9E+999999999 ->  0E-1000000003 Underflow Subnormal Inexact Rounded
  1014. rovx154  divide    -1E-9  9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded
  1015.  
  1016. rounding: half_down
  1017. rovx160  multiply   10    9E+999999999 ->  Infinity Overflow Inexact Rounded
  1018. rovx161  multiply  -10    9E+999999999 -> -Infinity Overflow Inexact Rounded
  1019. rovx162  divide     1E-9  9E+999999999 ->  0E-1000000003 Underflow Subnormal Inexact Rounded
  1020. rovx164  divide    -1E-9  9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded
  1021.  
  1022. -- check maximum finite value over a range of precisions
  1023. rounding: down
  1024. precision: 1
  1025. rovx200  multiply   10    9E+999999999 ->  9E+999999999 Overflow Inexact Rounded
  1026. rovx201  multiply  -10    9E+999999999 -> -9E+999999999 Overflow Inexact Rounded
  1027. precision: 2
  1028. rovx210  multiply   10    9E+999999999 ->  9.9E+999999999 Overflow Inexact Rounded
  1029. rovx211  multiply  -10    9E+999999999 -> -9.9E+999999999 Overflow Inexact Rounded
  1030. precision: 3
  1031. rovx220  multiply   10    9E+999999999 ->  9.99E+999999999 Overflow Inexact Rounded
  1032. rovx221  multiply  -10    9E+999999999 -> -9.99E+999999999 Overflow Inexact Rounded
  1033. precision: 4
  1034. rovx230  multiply   10    9E+999999999 ->  9.999E+999999999 Overflow Inexact Rounded
  1035. rovx231  multiply  -10    9E+999999999 -> -9.999E+999999999 Overflow Inexact Rounded
  1036. precision: 5
  1037. rovx240  multiply   10    9E+999999999 ->  9.9999E+999999999 Overflow Inexact Rounded
  1038. rovx241  multiply  -10    9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded
  1039. precision: 6
  1040. rovx250  multiply   10    9E+999999999 ->  9.99999E+999999999 Overflow Inexact Rounded
  1041. rovx251  multiply  -10    9E+999999999 -> -9.99999E+999999999 Overflow Inexact Rounded
  1042. precision: 7
  1043. rovx260  multiply   10    9E+999999999 ->  9.999999E+999999999 Overflow Inexact Rounded
  1044. rovx261  multiply  -10    9E+999999999 -> -9.999999E+999999999 Overflow Inexact Rounded
  1045. precision: 8
  1046. rovx270  multiply   10    9E+999999999 ->  9.9999999E+999999999 Overflow Inexact Rounded
  1047. rovx271  multiply  -10    9E+999999999 -> -9.9999999E+999999999 Overflow Inexact Rounded
  1048. precision: 9
  1049. rovx280  multiply   10    9E+999999999 ->  9.99999999E+999999999 Overflow Inexact Rounded
  1050. rovx281  multiply  -10    9E+999999999 -> -9.99999999E+999999999 Overflow Inexact Rounded
  1051. precision: 10
  1052. rovx290  multiply   10    9E+999999999 ->  9.999999999E+999999999 Overflow Inexact Rounded
  1053. rovx291  multiply  -10    9E+999999999 -> -9.999999999E+999999999 Overflow Inexact Rounded
  1054.  
  1055. -- reprise rounding mode effect (using multiplies so precision directive used)
  1056. precision: 9
  1057. maxexponent: 999999999
  1058. rounding: half_up
  1059. rmex400 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
  1060. rmex401 multiply  9.999E+999999999 10 ->  Infinity Overflow Inexact Rounded
  1061. rounding: half_down
  1062. rmex402 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
  1063. rmex403 multiply  9.999E+999999999 10 ->  Infinity Overflow Inexact Rounded
  1064. rounding: half_even
  1065. rmex404 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
  1066. rmex405 multiply  9.999E+999999999 10 ->  Infinity Overflow Inexact Rounded
  1067. rounding: floor
  1068. rmex406 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
  1069. rmex407 multiply  9.999E+999999999 10 ->  9.99999999E+999999999 Overflow Inexact Rounded
  1070. rounding: ceiling
  1071. rmex408 multiply -9.999E+999999999 10 -> -9.99999999E+999999999 Overflow Inexact Rounded
  1072. rmex409 multiply  9.999E+999999999 10 ->  Infinity Overflow Inexact Rounded
  1073. rounding: up
  1074. rmex410 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
  1075. rmex411 multiply  9.999E+999999999 10 ->  Infinity Overflow Inexact Rounded
  1076. rounding: down
  1077. rmex412 multiply -9.999E+999999999 10 -> -9.99999999E+999999999 Overflow Inexact Rounded
  1078. rmex413 multiply  9.999E+999999999 10 ->  9.99999999E+999999999 Overflow Inexact Rounded
  1079.  
  1080.